The remainder of this file is a version history, describing what
is new in the current version and what was new in earlier versions.
Version History
What's new in Version 7.1.2 beta of 3D-Filmstrip. November 10, 1998
Added two-sided coloring of surfaces, and several new objects.
What's new in Version 7.1 beta of 3D-Filmstrip. September 17, 1998
Bug Fixes, and some new minimal surfaces. Costa-Hoffman-Meeks was added,
and Chen-Gackstatter was modified to permit higher dihedral symmetries using
a technique due to Hermann Karcher.
What's new in Version 7.0 alpha of 3D-Filmstrip. August 1, 1998
Unlike the preceding few versions (in which the user interface changed
very little and I added a lot of new content) in this new version, 7.0
Alpha, there is no new content but a fairly drastic change in the UI.
The two basic changes are a major reorganization of the menu structures,
and a fledgling "toolbar".
The major trigger was a recent serious critique of the program by Angel
Montesinos. He exercised its features pretty thoroughly, and found a number
of bugs, but more importantly made a case that the program interface
was getting too complex. After thinking hard about his specific comments,
I developed a plan for meeting his objections, and the attached version is
the result.
Let's take up the toolbar first. Start up the program, create your
favorite surface, and then choose "Show Toolbar" from the View menu
(if you later want to hide it, choose "Hide Toolbar"). You will see
four buttons on the toolbar, and there use should be obvious. The
plan is to gradually put more and more controls in this toolbar (e.g.,
buttons to change the background from black to white and back, to switch
between color and stereo, etc.) but I didn't want to go very far in that
direction without getting you opinions concerning whether it looks like
a useful direction. The basic reasons for the toolbar controls are to
make their functions easier to access of course, but perhaps even more
importantly to "put them out in the open" rather than hiding them in a
menu. (However, anything in the toolbar will also be accessible from the
menus too.)
By now you will have noticed two things. First, the Main menu has
become entirely a menu of Nouns (i.e., the names of all the various
surfaces---and in other categories, the names of objects of those
categories.) All the Verbs (Create, Show Parallel Surfaces, About This
Object..., About This Category...) have been moved into the new Action
menu, next to the Main menu. In addition, the Action menu also contains
various Category dependent Verbs that used to be in the View menu (e.g.,
Show All Gridlines, Show Associated Surface). This Action menu is made
up on the fly each time it is pulled down, and only contains those items
that are appropriate at that moment.
This more rigid separation of menus by the logical function of their
items is the key to making the program UI less chaotic and easier to
understand on the one hand, but also in making the program easier to
maintain and less fragile---or so I hope. Personally, I prefer this new
menu structure (but that is a pretty biased view since I put a lot of
effort into programming it). I am very interested in hearing reactions
from other users.
What's new in Version 6.6 of 3D-Filmstrip. May 20, 1998
Despite the gap in numbering (and time!), version 6.6 is the
next public release of 3D-Filmstrip after version 6.2. There were
a number of intervening special purpose versions, but these were
not released for general distribution.
In the meantime, the program has undergone numerous changes and
additions. Unfortunately, the documentation has not kept pace. Like
most developers, I find adding new features a lot more interesting
than documenting them. I am releasing this version now, before
writing all the documentation I should, because the deadline is
fast approaching for the Math CDROM that will be distributed this
summer at the ICM 98 in Berlin. I will try to make up for the lack
of more formal documentation of the changes since version 6.2 with
a quick resume here.
1) A great deal of time and effort has gone into testing, to find
and eradicate hidden bugs. The program now seems more stable than
ever before. I don't know any way to crash it, and I have run this
version for many hours without any glitches. However I am very
aware that a program as complex as 3D-Filmstrip is bound to have
many residual bugs that I have not aroused, but that other users,
using the program differently than I do, will come across. PLEASE
if you find a problem send me email to palais@math.brandeis.edu
telling me if you can the sequence of actions that give rise to
the problem.
2) I have reluctantly given up trying to support pre PowerPC
Macintoshes. I know there are many excellent 680X0 machines out
there, but I have access to very few of the many older models,
and I do not like to distribute a version without careful testing.
The current 3D-Filmstrip would have been called 3D-Filmstrip(PPC)
in the old nomenclature, and 3D-Filmstrip(FPU), the old Fat
3D-Filmstrip, and 3D-Filmstrip(SANE) are no more.
3) There are very many new pre-programmed examples in the various
categories. In particular, check out the many new surfaces, and
in particular the new minimal surfaces.
4) Holding down the space-bar will now pause the program in all
cases where previously a command-period or a mouse-click would
have aborted.
5) In the Space Curve Category check out the menu items Show Tangent
Developable, Show Repere Mobile, and Show Projection on XXX Plane.
(These are best seen in stereo!)
6) Courtesy of Bob Palais, the program now has code to do Fast Fourier
Transforms. This has made it possible to add many neat new features
to the program. For example, in the Lattice Model Category, in Graphical
Display, you will see the kinetic and potential energy in each normal
mode in real time as the time evolution proceeds. And in the Wave Category
there is now the capability to solve the initial value problem for KdV
and Nonlinear Schroedinger (using a pseudospectral method due to Wineberg,
McGrath, Gabl, and Scott). Holding down 0ption-Command (or choosing
Show Fourier Amplitudes from the menu) will show the frequency spectrum
of the solutions. Note that these latter two additions make it possible
and easy for anyone to repeat the historic numerical experiments of
Fermi=Pasta-Ulam and of Zabusky-Kruskal (see my article, "The Symmetries
of Solitons" in the October 1997 Bulletin of the AMS).
7) No program is an island. 3D-Filmstrip now has the capability to
export its surfaces to MATLAB and to the ray tracing program POVRay.
Also, surfaces created using MATLAB can be exported to 3D-Filmstrip.
This is done using an interchange format called Surface Data files.
These are created using the item Save Surface Data... in the File
menu (or an M-File in MATLAB), and they are read into 3D-Filmstrip
using Read Surface Data... (and into MATLAB with another M-File).
Christophe Favergeon Borgialli has written a converter program that
takes a Surface Data file into a POVRay file. For full details, see
the ReadMe files in the three subfolders of the 3dfs Export/Import
folder that comes with the standard 3D-Filmstrip distribution.
8) Lots of nice new stuff in the Polyhedron Category.
9) It is now possible to specify user surfaces parametrically using
polar spherical or cylindrical coordinates. Also there is a user
surface of revolution. Similarly, it is possible to define a user
plane curve parametrically in polar coordinates, and a space curve
in polar spherical or cylindrical coordinates.
===========
What's new in Version 6.2 of 3D-Filmstrip. November 15, 1996
(Version 6.2.2 of December 5, 1996 is a minor
maintenace upgrade of Version 6.2.
It fixes a bug in several of the
"User Defined..." dialogs that prevented them
from working properly after the first time.
It also fixes a serious bug introduced into the
fpu version when I switched to a new compiler.)
With this version of 3D-Filmstrip, the user interface has gotten a
major facelift. I would like to thank Mike Epstein and Xah Lee for
pushing me to make these changes, and working very hard with me in
the design and testing of the many new features.
There are also important mathematical additions to the program---but
most were made by my collaborators, Christopher Anand and Angel Montesinos.
Christopher considerably beefed up the Anand-Ward soliton segment of the
program, and added User Defined... solitons as well as documentation.
I am very pleased with this example of one extreme in the spectrum of
applications I had hoped that 3D-Filmstrip would be useful for, namely
as a tool in advanced mathematical research. Angel extended his marvelous
algorithm for implicitly defined plane curves to also work for implicit
space curves, and I needed to make only minor adaptions for his code to
work within 3D-Filmstrip. I added routines for displaying geometric objects
in the 3-Sphere. They are simply stereographically projected, and then
treated like any other object in R^3. In particular you will now find
the Hopf fibration in the Space Curve menu, and the Clifford torus in
the Surface menu.
Here is a list of changes to the user interface:
1) There is a new application icon (Mike Epstein helped with the design).
You may have to remake your desktop file to see it. (Have a look with
your stereo glasses on).
2) Settings files and Grand Tour files now have their own distinctive icons,
and double-clicking will open them (after launching 3D-Filmstrip if it
isn't already running).
3) Command-O = Open Settings File
Command-S = Save Settings
Command-W closes Help Window and dialog windows
Command-U opens User Defined... dialogs
4) Cancel buttons have been added to dialogs.
5) Surface rendering now defaults to color.
6) Many changes to the View menu, to make it more intuitive for new users.
7) You can now omit the * for multiplication when writing expressions in
User Defined... dialogs (but remember to put in spaces to avoid ambiguity).
8) You can now also use "split definitions" in expressions, giving them different
values on different parts of the domains of their variables. The syntax is:
case <condition> : <expression> ; <condition> : <expression> ; . . . end
For example:
case x>0: ln(x); x<=0: 1 end
(The final ; is optional.)
9) You can now signal a fast abort either with Command-period as before,
or by pressing the Escape key.
10) The "Virtual Sphere" button that used to inhabit the lower left
hand corner of the screen is gone.
That is because the program is now always in Virtual Sphere mode.
For example, after drawing a Surface you can immediately click on
it and start rotating it. The rotation happens in wireframe by default,
but if you put down Caps-lock it happens in patch mode (at reduced
resolution). Moreover if, while you are rotating, you hold down the
Control key, the cursor changes to four arrows and you can now translate
the object in a plane parallel to the screen. If instead you hold down
Shift, then the cursor changes to an up-down arrow and you can "zoom" the
object toward or away from you. In essence, you can move along an arbitrary
path in the Euclidean group, and have the object "follow along".
The same thing works in the Plane curve and Conformal map categories,
except the default movement is translation instead of rotation. Morever,
in these two categories, if you hold down Command and then drag out a
rectangle in the usual Mac way, then when you release the mouse (with
Command still down) your selection rectangle will zoom to the entire
window.
11) There used to be a special version of Virtual Sphere mode in which
an object spins about an axis that you could change interactively by
rotating it with the mouse. The old way of entering that mode was by
putting Caps-lock down before clicking on the Virtual Sphere button,
and you stayed in that mode until the Caps-lock key was released.
This has now been renamed to Spin mode. You enter it by selecting
Spin at the bottom of the Animate menu, and exit it by fast abort
(i.e., either Command-period or Escape). For surfaces, the spin will
be in wireframe if Caps-lock is up and in Patch mode if it is down.
12) If you are connected to the Internet and have the System Extension
Internet Config installed in your Extensions Folder, then you will
have two extra items at the bottom of your Balloon Help menu when
3D-Filmstrip is active; namely "Download Latest Version" and
"3D-Filmstrip Home Page". Of course, for these to work, you must have
available an ftp program (such as Fetch or Anarchie) and a Web Browser
(such as Netscape Navigator) and you must have chosen one of each as
your preference using the Helper Dialog of the Internet Config program.
===========
What's new in Version 6.1 of 3D-Filmstrip. June 1, 1996
1) NEW ABOUT BOX.
The clunky old About Box has been replaced by one that
is "way cool".
2) SPEED TEST.
As the program starts up it does a speed test, and
gives the result in the Graphics Window title-bar.
The speed is a rather arbitrary number obtained by
seeing how fast the cpu can complete a certain mix
of operations. It is normalized to come out about
one for a Powerbook 180, and a speed of say 5.5
means that a machine completed these operations
five and a-half times as fast. The idea is not to
establish bragging rights---rather it will be used
slow down various processes that would otherwise run
too rapidly on very fast cpu's.
[ NOTE! The display (but not the speed test was removed
in version 6.2.]
3) ADDITIONS TO FILE MENU.
There are several changes to the File menu. First two trivial
changes: Open... has ben changed to Open Settings... and Save...
has been changed to Save Settings... . More important are several
new items:
a) PRINTING THE GRAPHICS WINDOW.
There is a new item, Save Window as PICT file...
This is in response to a request from many users
to have an easy method to print the contents of
the Graphics Window. It seemed like overkill to put
in all the code that a real print dialog would entail,
so I chose something easier for me and I expect better
for the user. Essentially every Macintosh graphics
program (and even Simple Text!) can open and print
a PICT file. Moreover, by using a graphics program
you can do some minor editing before printing (e.g.,
remove the window controls, add labels, etc.).
b) 3D-FILMSTRIP NOW DOES QUICKTIME!
There is a new item, Save Animation as Movie...
Again, this was suggested by many users and has
many advantages (and one drawback). The drawback
is that a QuickTime movie can take a fair amount of
disk space. (But not as much as I originally feared,
several will fit on a 1.4 MByte floppy, and when I
learn more about compression I can probably do better.)
Two of the advantages that I feel are among the most
important are:
1) a movie starts playing almost immediately, whereas
to recreate an animation from the Settings on a
settings file can take many minutes.
2) a movie can be easily converted (e.g., with
MoviePlayer) to a format transportable to UNIX
machines or Windows machines (having the
QuickTime_for_Windows application).
c) PLAYING BACK A QUICKTIME MOVIE.
There is also a new item Open Movie... item. This brings up
a dialog that will permit you to open any QuickTime movie
with a very basic controller. It is not meant as a substitute
for MoviePlayer or one of the other many good QT movie editors
and players, but rather to give the user a quick way to check
a movie just produced using the previous item. When you open
a movie there will be a new Movie menu added to the menubar
control looping, and decide whether to play at a fixed rate
or play every frame. (At the moment you must keep pressing
the forward button as long as you want the movie to play.)
4) INITIALIZING MORPHING PARAMETERS.
The Set Morphing... dialog has a new button, "Init to current parameters"
that will set all the morphing parameters to the current value of the
corresponding parameters (i.e., aa0 and aa1 will be set equal to aa, etc.,
and umin0 and umax0 will be set equal to umin etc.). Again, this was by
popular request.
5) MANY NEW FEATURES IN PLANE CURVE AND SPACE CURVE MENUS.
I had been working so long improving the Surface category that the
two curve categories were beginning to look pretty weak and dull by
comparison. They are now a lot more interesting (and fun).
a) IMPLICIT PLANE CURVES
The program now can handle implicit plane curves (I use a
very neat algorithm of Harley Flanders). There are several
classic implicit curves in the menu and there also is a
User (implicit)... menu item.
b) SHOW PARALLEL CURVES
There is a Show Parallel Curves... item in the Plane Curve menu.
This first draws the normals to the curve from the curve to the
"focal point" (i.e., to the the center of the osculating circle).
The normals are then erased, but the evolute remains while
the parallel curves get drawn in real time animation. The speed
of the animation can be changed with the right and left arrow
keys, and the direction can be changed witht the up arrow key.
c) GENERALIZED CYCLOIDS
You can now draw "generalized cycloids" by rolling a circle of
any radius on any parametric plane curve. The radius of the
rolling circle is the parameter gg, and the sign of gg determines
which side of the curve the circle rolls on. The parameter ii
determines which point along the radius of the rolling circle
draws the "cycloid" (if ii = 0 it is the center of the circle,
if ii = 1 it is the point of contact, if ii = -1 it is the point
on the rim opposite the contact point, etc.). Finally, if the
curve is closed and hh is NOT equal to zero, then the value of
gg is"rounded" to the nearest value that makes the length of the
circle go evenly into the length of curve (so the cycloid repeats
exactly after one time around). If after drawing one cycloid
and changing parameters you hold down the shift key as you select
Draw Generalized Cycloid, previous cycloids will not be erased
before the next one is drawn.
d) SHOW OSCULATING CIRCLES
After creating a parametric plane curve you can show its
osculating circles as a real time animation. The osculating
circles are drawn in blue, and the centers leaves behind a
trace of the evolute as the circle moves along the curve.
(If you hold down the Control key as you select Show
Osculating Circles, the radii of the osculating circles
are first drawn in red and remain on the screen.)
e) SHOW SPACE CURVE AS TUBE
The Space Curve menu now has a Show as Tube item. By the way,
while I generally prefer to see surface and space curves in
stereo, tubes around space curves are an exception, and I find
turning on color works best. Parametrizing a tube requires the
construction of a framing of the normal bundle, and there are
two obvious choices: the Frenet frame and the the parallel frame
(obtained by choosing an arbitrary initial frame and using
parallel translation in the normal bundle to propogate it along
the curve). There are menu choices to switch between these two
framings.
The radius of the tube is given by the parameter ii. The
resolution along the length of the tube is just t Resolution
of course, and the resolution around the tube is u Resolution,
but is called "Resolution around the tube" in the Set Resolution &
Scale... dialog when Show as Tube is checked. By default the
resolution around the tube is set at 4 (giving a square
cross-section to the tube) since I feel that displays the
framing best, but if you prefer round tubes you can set the
resolution around the tube as high as 18.
6) SHOW PARALLEL SURFACES.
The Surface category was not completely neglected. There is now an
item "Show Parallel Surfaces" in the Surface menu (it works only
for parametric surfaces for now). It first draws the two focal sets
of the surface (corresponding respectively to the smaller and larger
principal curvatures) then erases these and shows a real time animation
of the parallel surfaces in wireframe. (If you hold down the shift
key, you will see the focal surface for as long as it is held down).
The speed of the animation can be changed with the right and left arrow
keys, and the direction can be changed with the up arrow key.
===========
What's new in Version 6.0 of 3D-Filmstrip. February 7, 1996
Major New Features.
1) I spent ten days in Bonn in December working with Hermann
Karcher to finish (at least for now) the display of minimal
surfaces directly from their Weierstrass data. The material
in this portion of the program is by far the richest and most
sophisticated numerically, mathematically, and visually. It
serves as an ideal that I hope the other mathematical categories
in the program will eventually approach. I should stress again
that Karcher is almost entirely responsible for the algorithms,
and I have served mainly to write these algorithms in Pascal and
interface them with the graphical display capabilities already
built in to 3D-Filmstrip. I warmly recommend your browsing in
this section (the lower part of the Minimal Surface menu). In
particular, choose Wavy Enneper, switch to Filmstrip animation,
and do a cyclic morph (in stereo vision of course!).
2) There is now a native PowerPC version of the program. I believe
that it is dependable, but I have not been able to test it with
anywhere near the thoroughness of the versions compiled for the 68K
Macs. Since I do not own or have access to a PowerMac on which I can
load my debugging and quality assurance software, my ability to
test it myself is limited, so I would greatly appreciate it if
those of you with PowerMacs would send me reports of any anomalous
behavior.
By the way, even on the slowest of PowerPC's (a 60 MHz 601)
the native version runs about five times as fast as the FPU version
runs on the fastest of the 68K Macs (my Quadra 840 AV, which has a
40MHz 68040).
Other Changes.
3) Virtual sphere mode now works a little differently. After
clicking on the virtual sphere control, you have three seconds
to press the mouse button again, to start rotating the object
(otherwise you leave virtual sphere mode). After you rotate the
object and release the mouse button, the object redraws (unless you
press option while releasing the mouse) and then stays in virtual
sphere mode for three more seconds, allowing you to rotate further.
(During the three second delay, touching Command will drop you out
of virtualsphere mode instantly).
4) Now almost any drawing operation that takes more that a few seconds
to complete can be aborted with Command Period (holding down the mouse
button also usually does it too).
5) If you hold down the Control key while a surface is being drawn, the
normal field to the surface will also be shown.
In addition there has been the usual complement of bug fixes and minor
improvements.
===========
What's new in Version 5.3 of 3D-Filmstrip. October 10, 1995
While versions 5.1 and 5.2 mainly improved the infrastructure
and user interface of 3D-Filmstrip, this update has concentrated
on improving the documentation and adding new mathematics.
The items "Pascal Code..." and "Texplanation..." in the main menus
have been replaced by two new items, "About this Category...", and
"About this Object...". The latter of these is the real replacement
for the former two. It is the place to look for the formulas that
describe an object, and to see how an object depends on various
parameters. Eventually (and gradually) I will add further comments
of a descriptive nature to these items. As of now, the latter has been
carried out only for the minimal surfaces given by their Weierstrass
data, and I have Hermann Karcher to thank for writing the text for
these items. For the most part, "About this Category..." is the just
the descriptive material about a particular category that used to be
under the Help menu.
But the really exciting new addition is mathematical. 3D-Filmstrip
now is able to create a minimal surface directly from its Weierstrass
representation. This is the result of several weeks of concentrated
joint effort by Hermann Karcher and myself. The algorithms and the
remarkably fast and efficient numerical methods are almost entirely
due to Karcher, and my contribution to the collaboration was mainly to
interface Karcher's algorithms with the graphical display algorithms
that are built into 3D-Filmstrip. Using this technique, it is now
possible to show the many new and beautiful examples of minimal surfaces
that have been discovered in recent years by Chen-Gackstatter, Costa,
Hoffmann, Karcher, Meeks, Rosenberg, Wei, et. al. However, for most
of these surfaces, the complete presentation is a multi-step process.
They have a number of discrete symmetries, and after a fundamental
domain has been created by integrating the Weierstrass data, the rest
of the surface must be created by reflecting and rotating this piece.
So far we have carried this out for the Riemann, Chen-GackStatter,
and Costa surfaces (in wireframe). Eventually, in a later version,
it will also be carried out for the remaining pre-programmed
Weierstrass-type minimal surfaces, and it will also be possible
to view the whole surfaces in patch-mode as well as in wireframe.
If you want to see a very pretty animation, go into stereo mode,
choose Wavy Enneper from the Minimal Surface submenu of the Surface
Menu, choose Filmstrip animation from the Animation type menu, and
then choose Cyclic Morph from the Animation menu (it will take a few
minutes).
===========
What's new in Version 5.2 of 3D-Filmstrip. July 3, 1995
There have been a number of small bug-fixes. In particular, for
3-dimensional ODE, direction fields were not scaling properly, and
the Show as Graph item in the Soliton main menu was not working
correctly for solutions of the Sine-Gordon equation. (I still have
not got it right for the Breather solution).
There is now a Set Monitor submenu of the Settings menu. It looks
(and works) just like the Monitors Control Panel, but please use this
instead, so the program will know immediately about any change you
make and take appropriate steps to optimize colors. If you should use
the Monitors Control Panel, the program will eventually figure it out.
By the way, I've added a new palette, and stereo now works pretty well at the sixteen colors setting, so if memory is low and you want stereo but no colors, try shifting to sixteen colors. Any change made using
the Set Monitors menu will be reversed when you quit 3D-Filmstrip.
First order ODE in one variable now show direction fields by default.
You will notice that now there is a one or two digit number just above
the size control box on the lower right of the Graphics Window. This is
the maximum number of frames you can have in a Filmstrip with the current window size and monitor setting. If you want more frames, make the window smaller---BUT see the next item. (By the way, if you are using virtual memory, or RAMDoubler, there is no way the program can tell, so if you try using the maximum number of frames, the playback
of the Filmstrip will slow to a molasses-like pace as some frames
are cached to disk.)
There is now a choice of two kinds of animation, the old "filmstrip"
type, and a new "real-time". You choose between them using the
"Animation Type" submenu of the Animate menu. For real-time animation,
which is now the default, each "frame" is created on the fly, as needed.
By a little hard work and a few tricks I was able to finally get this
working fast enough to be quite acceptable on most recent machines,
except that for Surfaces in "patch" mode it is still too slow, so the
program shifts temporarily to wire-frame during real-time animation
of surfaces. I expect to have a version of 3D-Filmstrip running native
on PowerPC Macs within six months, and I am hoping that the speedup
will be enough that (perhaps with a little more hard work) even patch
surfaces will draw fast enough to work in real-time, and this change
is to prepare for that. By the way, the advantage to real-time animation
over filmstrip animation is that a filmstrip with more than a few frames
requires gobs of RAM. (Also, you don't have to wait while the program
makes up the filmstrip.)
For ODE in one-variable and first order ODE in two variables, I
have implemented the display of direction fields for time-dependent equations. All of the pre-programmed equations are autonomous, so if
you want to see this in action choose User Defined..., and either use the default or enter your own time-dependent equation. I have not seen this in other ODE programs, and I would appreciate it if anyone who has would let me know.
The Lattice Model category now has a User Defined item, so you can
experiment with your very own lattice models.
I've found another nice use for the Virtual Sphere algorithm. If you
depress the Shift Lock key before clicking on the Virtual Sphere control
button (in the lower right of the screen) the program will enter a
different version of Virtual Sphere mode. In this version, the rotation
axis will be visible, and when you rotate the virtual sphere with the mouse, the 3D object will stay fixed, but the rotation axis will rotate
with the sphere. If you release the mouse button, the object will start
rotating about the new axis, and continues rotating until you again depress the mouse button and start rotating the axis. You can keep alternating these two phases as long as you like, and then release the shift lock to leave virtual sphere mode. (At this point the object will be redrawn in its final rotated position, and the rotation axis is fixed at its final position.) Needless to say, while this does not require being in stereo mode, it isn't too useful without it.
In the six ODE categories, an ODE control panel now opens by default
just below the Graphics Window. This has buttons to do more easily
things you could do with the menus (Create, Erase, Continue, double or
half the scale, and bring up the dialog to set initial conditions,
step-size, time-span, and dottedness. In addition there are buttons for
single-stepping the ODE forward or backward, and there is a read-out of
the current time, position, and velocity.
===========
What's new in Version 5.1 of 3D-Filmstrip. May 23, 1995
This is again a substantial update to the program with two major
new features. One is very visible and the other, while more hidden,
make the program a lot easier to use.
1) The Virtual Sphere algorithm has been implemented.
For the Surface, Space Curves, and Polyhedra categories, after an
object is selected, a button will appear at the lower left corner
of the graphics window. If you click on this button then a circle
appears on the screen surrounding the object. The object has now
become temporarily embedded in a transparent hard plastic sphere
(called the virtual sphere) that is centered at the screen center.
The circle you see is the diameter given by intersecting the screen
and the virtual sphere. Place the cursor anywhere on the top surface
of the virtual sphere and drag the sphere to rotate it, carrying
the object along with it. (For speed, a surface will be shown in
wire-frame style as you drag it). When you release the mouse, the
object will now be drawn in its final position. If you hold down the
Control key while in virtual sphere mode, then you will see a little
piece of the tangent
plane at the point where the virtual sphere is being grabbed---this can
help during the time you are learning to use the technique. If you hold
down both option and command as you release the mouse button while in
virtual sphere mode you will stay in virtual sphere mode and the object
will not be redrawn---this allows you to move the mouse to a different
point to make it easier to turn the sphere as you wish.
2) The ugly opening dialog for choosing the size of the graphics window and
the maximum number of frames in a filmstrip is now a thing of the past.
The graphics window is created with a certain aspect ratio, and as large
as memory will allow (up to a certain maximum). Moreover it is now
resizeable at any time, and any object drawn in it will be rescaled to
the new window size. Frames for a filmstrip are created (and destroyed)
automatically on as as needed basis. These two changes are a reflection
of a major rewriting of the memory management infrastructure of the
program. While earlier versions of the program set up all necessary data
structures when the program was launched and kept them around until
quitting time, in this version larger structures are created when needed
and destroyed when the current need for them has passed. This has led to
a drastic reduction in the size of the memory partition required to run
the program. While earlier versions needed at least a three megabyte
partition, version 5.1 can run in as little as 1200 Kilobytes. (The
preferred size should be set at 2500 K, or higher if you have a big
monitor and like to have large windows.)
Also, in the ODE categories, the division of the graphics screen into
two panes (the top showing orbits and the bottom orbit projections on
the axes) is now under user control. The division of the graphics
window into these two panes is adjusted as follows. There is a
rectangular button at the right edge of the screen where the two
panes meet. If you press on this button, the button itself will
disappear and be replaced by a horizontal line. Drag the horizontal
line to where you would like the new boundary between panes and
release the mouse. (At least twenty percent of the total screen
height must be devoted to each pane.)
=============
What's new in Version 5.0 of 3D-Filmstrip. March 15, 1995
This is a fairly substantial update. The previous publicly available
version (4.6) was made available last October, and in the six months
since then I have been working hard to improve the program. (It now runs
to over 35,000 lines of Pascal source code.)
There has been the usual quota of bug fixes---hopefully not balanced
by newly introduced glitches---but in addition two major new features
(and many minor ones) have been added.
Perhaps the most notable of these is the option to display surfaces
and polyhedra in color, using a combination of colored light sources and
(in the case of surfaces) surface coloration. The latter is controlled
by a submenu menu near the bottom of the Surface menu. This has several
items, including a "User Defined..." option that brings up a dialog
permitting the user to separately specify the hue, saturation, and
brightness of each point on the surface as functions of the two surface
parameters u, and v.
There are five "light sources", called Source0, Source1, Source2,
Source3, and Ambient Source. All five can have their colors set by
the user. The light rays of Source0 always travel in the viewing
direction (i.e., in the direction from Viewpoint towards ScreenCenter),
the light rays from AmbientSource are "omni-directional", while the
directions of the light rays of Source1, Source2, and Source3 can
be set by the user. For each directional source, its light rays are
all parallel to a fixed direction---as if the source were "at infinity".
There is a Set Light Sources submenu of the Settings menu to control
the nature of the light sources. This has several preset combinations
as well as a Custom... item that brings up a dialog for setting the
parameters for all of the sources by hand. See the Color item in the
Help Menu, or the section on color in the documentation file, for more
details, and in particular a discussion of how the surface color and the
color and direction of the light sources determine the observed color of
each surface patch. I have now switched to Phong shading of surfaces.
This means that in addition to diffusely scattered light reflecting off
the surface, there is now also a specular (i.e., mirror-like) component
that adds highlights and gives a more realistic appearance to surfaces.
See the section on Phong shading in the TeX documentation to see how
the two parameters, Specular Exponent and Specular Ratio, determine the
characteristics of the specular component of reflected light. These two
parameters can be changed from their default values using the Custom...
dialog of the Set Light Sources submenu.
A second major addition is a much richer implementation of ODE's.
Whereas earlier versions only had first order ODE's in two and three
variables, now there are six separate categories for first and second
order systems ODE's in one, two, or three dimensions. Also, the option
has been added to see the direction field associated with a first order
ODE, and to see the projections of orbits of an ODE on the coordinate
axes.In addition to the special Central Force ODE category, I have
now added a second special ODE category called Lattice Models. This
shows the solutions of the equations of motion for a one dimensional
lattice of anharmonic oscillators with nearest neighbor interactions.
See the TeX documentation for more details. (This category is still
experimental and under development, so I would particularly appreciate
comments and suggestions concerning it.)
There are four new submenu items in the View menu: "Background",
"Visible Gridlines?", "Project ODE Orbits?", and "Show Direction Fields?".
Each brings up a two-item submenu: White/Black in the first case and
Yes/No in the others.
Except for the Conformal Map category, the default background is white
and objects are drawn in black (or color). Choosing White from the
Background menu will change the background to black, and objects will be
drawn in white (or color). This new background will remain chosen until
it is either explicitly changed back, or a new category is chosen using
the Settings menu Set Category...item.
The Visible Gridlines? submenu refers only to the Surface category.
Choosing No from the Visible Gridlines? submenu will turn off the
display of the u,v coordinate curves when a surface is redrawn (except,
of course, in wire-frame display mode!). While this option is available
in monochrome, it is rarely advisable in that situation, and should be
reserved for (occassional) use when displaying a surface in color. It
is also useful in stereo when the specular component of reflected light
has been emphasized. (For example, with Specular Exponent set to 60
Specular Ratio equal 0.6, and no gridlines, a surface has the appearance
of polished ivory---for best results, set the u and v resolutions high.)
The "Project ODE Orbits?", and "Show Direction Fields?" submenus
refer only to the ODE category. In any of the ODE categories (except
for a first order equation in one variable) the main display shows
the evolution of an orbit in the phase space. By default, the program
also shows projections of the orbit on the various coordinate axes
(using different colors to distinguish the projections). This display
occurs in a second pane of the graphics window that opens automatically
below the main pane. This pane can be hidden with the Project ODE Orbits?
submenu. For a first order ODE category in two variables and a second
order ODE in one variable the program by default displays the direction
field of the vector field defining the ODE. (If the vector field is time
dependent, then it is shown at time zero). The display of the direction
field can be turned off with the Show Direction Fields? submenu.
There is another new feature of the View menu: choosing an item
will by default trigger an immediate redraw of a selected object.
By contrast, changing some settings by calling up a dialog using the
Settings menu does not cause a redraw until Create is chosen from the
Main menu. While these seem to be the default behaviors preferred by
the majority of users, some users prefer a delayed redraw with the
View menu too---it is a little annoying to have to sit through long
redraws if one is making several successive changes with the View menu.
So I have implemented an option to inhibit an immediate redraw by holding
down the option key while making a choice from the View menu. In fact,
this function of the option key has been generalized to also prevent
the immeditate drawing of an object in other circumstances when it
would otherwise occur. For example, when choosing a new item from the
Main menu, hold down the option key if you would like to make several
adjustments using the View and Settings menus before the new object
gets drawn.
The way that the speed of playback of a filmstrip is adjusted has
been completely changed. The program controls the playback speed by
adding a certain number of "ticks" (i.e., sixtieths of a second)
between successive frames. This number can vary between zero, its
initial value when the program starts up, to thirty. Note that with
thirty ticks between frames, even a machine capable of instantaneously
drawing each frame would only display two frames per second. In
prior versions, to slow down or speed up the playback (i.e., to add
or subtract ticks) it was necessary to stop the playback and then
choose Slower Playback or Faster Playback from the Animation menu.
These menu items have been removed, and now to change the playback
speed while a filmstrip is being played back, press the right-arrow
key ( ---> ) to add ticks, or the left arrow key ( <--- ) to subtract
ticks. One tick is added or subtracted if the delay between frames
is less than ten ticks, and five if greater.) During playback, a
"status line" is added to the bottom of the graphics window giving
the current number of ticks added between frames. By the way, once
this number is set it will remain fixed until quitting time unless
it is reset by the user.
When a filmstrip is played back and then stopped with a Command
Period, Command P will restart it at the same frame (rather than
at the beginning as before).
If Morph is chosen from the Animation menu when Conformal Map is
the current category, then a filmstrip will be created showing a
deformation of the selected map from the identity map.
Two new item, Show Axes Only and Show Object, have been added to
the Aspect menu. While trying to find an optimal aspect, it is often
necessary to do some experimentation, and having to wait for a complex
object to be drawn slows things down. If Show Axes Only is selected
then a mode is entered where only the axes are drawn after each aspect
change. Choosing Show Object draws the object and exits this mode. A
check mark indicates which mode is currently active.
It is now possible to change the range of the surface variables
u,v (as well as the values of the various parameters) during the
creation of a Morphing filmstrip. This is done by setting the eight